#include<iostream>
#include<list>
#include<vector>

using namespace std;
namespace Ehundred
{
	template<class Iterator,class Ref,class Ptr>
	struct Reverse_iterator
	{
		typedef Reverse_iterator self;
		self& operator++()
		{
			--_it;
			return *this;
		}
		self& operator++(int)
		{
			Iterator ret = _it;
			--_it;
			return ret;
		}
		self& operator--()
		{
			++_it;
			return *this;
		}
		self& operator--(int)
		{
			Iterator ret = _it;
			++_it;
			return ret;
		}
		bool operator!=(const self& s) const
		{
			return _it != s._it;
		}
		bool operator==(const self& s) const
		{
			return _it == s._it;
		}
		bool operator*()
		{
			Iterator cur = _it;
			return *(--cur);
		}
		bool operator->()
		{
			return &(operator*());
		}
		Iterator _it;
	};
}